package PersonStu.sanqi;

/**
 * @Author: Dijah
 * @Date: 2022/12/12 16:09
 * @Desc: 跳跃
 * 一个数组，从头开始跳跃，跳跃到最后一个位置，最少需要多少步
 * 当前的位置的数字表示：可以跳跃多少步
 */
public class code_13_JumpGame {


    public static int jumpGame(int [] arr){
        if(arr == null || arr.length == 0){
            return 0;
        }
        int step = 0;
        int cur = 0; //step步内，右边界
        int next = 0;//step + 1步内，右边界
        for (int i = 0; i < arr.length; i++) {
            if(cur < i){
                step++;
                cur = next;
            }
            next = Math.max(next,i + arr[i]);
        }
        return step;
    }

    public static void main(String[] args) {
        int[] arr = { 3, 2, 3, 1, 1, 4 };
        System.out.println(jumpGame(arr));

    }
}
